package edu.fasta.sisinfo2.builders;

import java.util.ArrayList;
import java.util.List;
import edu.fasta.sisinfo2.juegos.Juego;
import edu.fasta.sisinfo2.juegos.Par;
import edu.fasta.sisinfo2.poker.Carta;
import edu.fasta.sisinfo2.poker.Mano;

public class ParBuilder implements BuilderJuegos {

	private BuilderJuegos builderSiguiente;
	
	public ParBuilder(BuilderJuegos builderSiguiente){
		this.setBuilderSiguiente(builderSiguiente);
	}
	
	public Juego buildJuego(Mano mano) {

		List listaDeManos = new ArrayList();
		listaDeManos = mano.combinatoria(); //le paso una mano de siete cartas y me da las combinatorias posibles
		List manoActual = new ArrayList();
				
		for(int i=0; i<listaDeManos.size(); i++){ //recorro todas las manos posibles (21)
			manoActual = (List) listaDeManos.get(i);
			List unPar = new ArrayList();
			for(int k=0; k < manoActual.size()-1; k++){
				for(int j = k+1; j < manoActual.size(); j++){
					if(((Carta) manoActual.get(k)).getValor() == ( ((Carta) manoActual.get(j)).getValor())){
						System.out.println("Se creo un PAR de " + ((Carta) manoActual.get(k)).imprimirValor());
						unPar.add(manoActual.get(k));
						unPar.add(manoActual.get(j));
						return new Par(unPar); 
					}
				}
			}
		}
		return this.getBuilderSiguiente().buildJuego(mano);
	}
	
	public BuilderJuegos getBuilderSiguiente() {
		return builderSiguiente;
	}
	
	public void setBuilderSiguiente(BuilderJuegos builderSiguiente) {
		this.builderSiguiente = builderSiguiente;
	}

}
